#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 100000

typedef struct prime_num
{
	int num;
	struct prime_num *next;
}prime_num_node;

struct prime_num * creat_prime_linked_list(int end);
void free_linked_list(prime_num_node* start);

int main()
{
	prime_num_node * prime_list_start = creat_prime_linked_list(N);
	int i;
	int flag = 0;
	for(i = 6; i <= N; i+=2)
	{
		prime_num_node * now_node = prime_list_start;
		while(now_node->next != NULL && now_node->num < i)
		{
			int sum;
			prime_num_node * now_node_in = prime_list_start;
			while(now_node_in->next != NULL && now_node_in->num < i)
			{
				sum = now_node->num + now_node_in->num;
				if(sum == i)
				{
					flag = 1;
					break;
				}
				now_node_in = now_node_in->next;
			}
			if(flag)break;
			now_node = now_node->next;
		}
		if(flag == 0)
		{
			printf("False");
			free_linked_list(prime_list_start);
			return -1;
		}
	}
	printf("True\n");
	free_linked_list(prime_list_start);
	return 0;
}

struct prime_num * creat_prime_linked_list(int end)
{
	prime_num_node * prime_list_start = malloc(sizeof(prime_num_node));
	prime_list_start -> num = 2;
	prime_list_start -> next = NULL;
	prime_num_node * now = prime_list_start;
	int i = 0;
	int j = 0;
	int flag = 1;
	for(i = 3; i < end; i+=2)
	{
		for(j = 3; j < i/2; j+=2)
		{
			if(i % j == 0)
			{
				flag = 0;
				break;
			}
		}
		if(flag)
                {
                        now->next = malloc(sizeof(prime_num_node));
                        now = now->next;
                        now->num = i;
                        now->next = NULL;
                }
		flag = 1;
	}
	return prime_list_start;
}

void free_linked_list(prime_num_node* start)
{
	prime_num_node * now_node = start;
	prime_num_node * next_node;
	while(now_node->next != NULL)
	{
		next_node = now_node->next;
		//printf("%d\n", now_node->num);
		free(now_node);
		now_node = next_node;
	}
	//printf("%d\n", now_node->num);
	free(now_node);
}
